//The philosophy of the template is to throw all the problems that can be processed at compile time into the compile time,
//and only deal with those core dynamic services at runtime,
//so as to greatly optimize the performance of the runtime.

//an increase in compile time due to repeated instantiations.

//extern templates, C++11
//that extends the syntax of the original mandatory compiler to instantiate a template at a specific location,
//allowing us to explicitly tell the compiler when to instantiatic the tempalte

#include<iostream>

template class std::vector<bool>;         //force instantiation
extern template class std::vector<double>;//should not instantiation in current file